matlab编x^3-3x-1=0在2附近的根 要求用牛顿迭代法

来源:百度知道 编辑:UC知道 时间:2024/09/28 07:57:34

源程序如下:
clear
clc
N=100;
x=2;
for ii=0:N
xl=x;
num=ii;
x=x-(x^3-3*x+1)/(3*x^2-3);
if abs(x-xl)<=0.0001%此为迭代结果精度,可调。
break
end
end
fprintf('答案:x=%f\n',x)
fprintf('迭代次数:%f\n',num)
运行结果:
答案:x=1.532089
迭代次数:4.000000

clear
clc
f=@(x)x^3-3*x-1;
df=@(x)3*x^2-3;
x=2;
for n=1:100
y=x;
x=x-f(x)/df(x);
if abs(x-y)<1e-6
break
end
end
n
x